Mobile devices such as smart phones are rapidly evolving and maturing as a platform that serves the computational and communication needs of people in their everyday lives. A growing number of smart phones have embedded sensors which can sense the user's environment. For example, many smart phones come with built in accelerometers, GPS, light sensors, microphones, proximity sensors, cameras, compasses, and gyroscopes. Additionally, there are many sensors available that can communicate over low power RF communication and push data to phones.
These sensors, along with the local computational power of the smart phone and the communication capability built into the phone, enable various proactive applications to be provided in fields such as location-based tracking, healthcare, remote monitoring, and environmental monitoring. Conventional proactive applications continuously read and process the sensor data to generate higher-level contexts. The conventional proactive applications may take actions based on the higher-level contexts derived from the sensor data. However, in conventional proactive applications, the communication between the sensors and the phone is only one way: the sensors output the data, and the phone reads the data. Also, conventional proactive applications do not generate or consider future context when taking the prescribed action.
Providing proactive services and applications involves continuous monitoring of the user context, which requires reading the sensor data stream and deriving higher-level contexts from the data. The continuous reading and processing of data from the sensors can be very resource-intensive on the device. In a sensor-rich environment where multiple applications are operating concurrently on the device, the quality, quantity, and timeliness of the proactive applications may be limited by the limited resources of the mobile.
For example, continuous sampling of the sensor data may drain the battery in a relatively short period of time. Also, the processing of the sensor data from the many sensors is limited by the relatively small computational power of a mobile device. Thus, using conventional systems and methods, it is difficult to provide a rich variety of proactive services that are delivered in a sustained manner.
Accordingly, it is desirable to provide systems and methods for adaptive sensor data selection and sampling based on current and future context, where there is two-way communication between the sensors and the mobile device, allowing the selection and sampling frequency of the sensors to be controlled. It is also desirable to provide systems and methods for adaptive sensor data selection and sampling based on current and future context, where a mobile device acts as a gateway for transmitting data between sensors and a server. It is further desirable to provide systems and methods for adaptive sensor data selection and sampling based on current and future context, where an additional action is taken based on the future context.
Accordingly, systems, methods and computer programs embodied on non-transitory computer-readable media are provided for adaptive sensor data selection and sampling based on current and future context, as disclosed herein.